/**
 * 本类基于网上代码的修改
 * 
 * 原文地址：http://www.veryhuo.com/a/view/11990.html
 */

(function(){
	$.extend($.fn,{
		mask: function(dialogP,maskDivClass){
		this.unmask();
//		参数
		var op = {
				opacity: 0.8,
				z: 10000,
				bgcolor: '#ccc'
		};
		var original=$(document.body);
		var position={top:0,left:0};
		if(this[0] && this[0]!==window.document){
			original=this;
			position=original.position();
		}
//		创建一个 Mask 层，追加到对象中
		var maskDiv=$(".maskdivgen");
		if(maskDiv.length<=0){
			maskDiv=$('<div class="maskdivgen"> </div>');
		}
		maskDiv.appendTo(original);
		var maskWidth=original.outerWidth();
		if(!maskWidth){
			maskWidth=original.width();
		}
		var maskHeight=original.outerHeight();
		if(!maskHeight){
			maskHeight=original.height();
		}
		maskDiv.css({
			position: 'absolute',
			top: position.top,
			left: position.left,
			'z-index': op.z,
			width: maskWidth,
			height:maskHeight,
			'background-color': op.bgcolor,
			opacity: 0
		});
		if(maskDivClass){
			maskDiv.addClass(maskDivClass);
		}
		
		maskDiv.fadeIn('fast', function(){
//			淡入淡出效果
			$(this).fadeTo('fast', op.opacity,function(){
				if(dialogP){
					var msgDiv=$(dialogP);
					//msgDiv.appendTo(maskDiv);
					var widthspace=$(document).scrollLeft()+$(window).width()-msgDiv.width();
					var heightspace=$(document).scrollTop()+$(window).height()-msgDiv.height();
					msgDiv.css({
						//cursor:'wait',
						opacity: 1,
						position: 'absolute',
						'z-index': op.z+1,
						top:(heightspace/2-2),
						left:(widthspace/2-2)
					});
					msgDiv.show();
					
				}
			});
		});
		return maskDiv;
	},
	unmask: function(){
		var original=$(document.body);
		if(this[0] && this[0]!==window.document){
			original=$(this[0]);
		}
		original.find("> div.maskdivgen").fadeOut('fast',0,function(){
			$(this).remove();
		});
	}
	});
})();

